home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / c / vbccppc.lha / vbcc / vbccppc.readme
Text File  |  1999-03-07  |  15KB  |  518 lines

  1. Short:    free optimizing ANSI C compiler (PPC/ELF)
  2. Uploader: volker@vb.franken.de (Volker Barthelmann)
  3. Author:   volker@vb.franken.de (Volker Barthelmann)
  4. Type:     dev/c
  5. Version:  0.7
  6. Replaces: dev/c/vbcc.lha
  7.  
  8. vbcc - portable ANSI C compiler (c) in 1995-99 by Volker Barthelmann
  9.  
  10.  
  11. INTRODUCTION
  12.  
  13.     vbcc is a free portable and retargetable ANSI C compiler.
  14.  
  15.     This archive contains the compiler, preprocessor, assembler, linker,
  16.     frontend, message browser, startup codes, C-libraries, amiga.lib
  17.     replacements as well as several other tools for PPC/ELF.
  18.  
  19.     This gives you a complete system that allows to develop programs in
  20.     ANSI C as well as Amiga-specific programs (provided you obtain the
  21.     OS-includes) running on PPC/ELF.
  22.  
  23.     All major parts of this distribution (including compiler, preprocessor,
  24.     libraries etc.) have been compiled/assembled with this system and
  25.     apart from the OS-includes everything needed to rebuilt vbcc,
  26.     the libraries and many of the other programs is contained in this
  27.     archive and the corresponding source archive.
  28.  
  29.     Note that the programs in this archive all run on the 68k. There is
  30.     another archive which contains compilers that run on the PPC.
  31.  
  32.  
  33. FEATURES
  34.  
  35.     vbcc..
  36.  
  37.     - comes with source
  38.  
  39.     - is free
  40.  
  41.     - is portable and retargetable
  42.  
  43.     - comes with a global optimizer that can e.g. do global common
  44.       subexpression elimination, constant propagation, function inlining
  45.       and several other optimizations (but is not yet finished and may
  46.       have some bugs)
  47.  
  48.     - should be ANSI compliant
  49.  
  50.     - can generate code that runs on a plain 68000 CPU
  51.  
  52.     - can generate code optimized for 020/030, 040 or 060
  53.  
  54.     - can generate code that uses the 68881/2, 68040/060 FPUs directly
  55.       and comes with appropriate math-libraries
  56.  
  57.     - can generate code that runs on PowerUp-boards
  58.  
  59.     - generates standard Amiga-68k-objects, PPC-ELF-objects or
  60.       WarpOS-EHF-objects
  61.  
  62.     - does not need too much memory
  63.  
  64.     - comes with a message browser
  65.  
  66.     - comes with a config program
  67.  
  68.     - offers a lot of error/warning messages that can be turned on/off
  69.       separately
  70.  
  71.  
  72. WHAT'S NEW
  73.  
  74.     Some changes since the last release:
  75.  
  76.     - bug fixes
  77.  
  78.     - new optimizations
  79.  
  80.     - much improved libaries
  81.  
  82.     - use of Frank Wille's linker vlink
  83.  
  84.     - support for PPC/WarpOS
  85.  
  86.     - support for small data for PPC/ELF and PPC/WarpOS
  87.  
  88.     - support for __saveds (68k, PPC/ELF and PPC/WarpOS)
  89.  
  90.     - support for __far (68k, PPC/EFL and PPC/WarpOS)
  91.  
  92.     - support for __chip (68k and PPC/WarpOS)
  93.  
  94.     - support for auto opening of libraries (68k, PPC/ELF and PPC/WarpOS)
  95.  
  96.     - cleaned up distributions for all three Amiga targets
  97.  
  98.     - checking for unresolved symbols for PPC/ELF
  99.  
  100.     - scheduler for PPC (ELF and WarpOS)
  101.  
  102.  
  103. REQUIREMENTS
  104.  
  105.     To use vbcc you need:
  106.  
  107.     - an Amiga with OS 2.0 or higher
  108.  
  109.     - enough RAM (it is possible to translate small programs with 1MB, but
  110.       for larger programs much more will be needed)
  111.  
  112.     Stuff that is not needed, but may be very useful:
  113.  
  114.     - harddisk
  115.  
  116.     - editor
  117.  
  118.     - make, touch etc.
  119.  
  120.     - the Amiga OS-includes (they can be found on certain CDs)
  121.  
  122.     - pipe-command (to use the message browser)
  123.  
  124.     Also you should know how to use the shell and you should know ANSI C
  125.     (if you need a book I recommend (like everyone) "The C Programming
  126.     Language, Second Edition, ANSI C" by Kernighan and Ritchie).
  127.  
  128.  
  129. LEGAL
  130.  
  131.     Note that this distribution contains several programs, libraries etc.
  132.     that are from different authors and are under different legal status.
  133.     So always read the corresponding doc/guide-file to find out under
  134.     what conditions a certain file may be used, distributed etc.
  135.  
  136.     For the most part you can assume that you may use everything for
  137.     non-commercial purposes and may distribute the unchanged archive
  138.     in whole.
  139.  
  140.     Changing any parts from this archive, distributing parts of it or
  141.     using it commercially might be legal for certain parts, but illegal
  142.     for others, so read all docs carefully before doing any of the above.
  143.  
  144.     This archive contains code written by (this list may be incomplete):
  145.  
  146.     Volker Barthelmann, Frank Wille, Thorsten Schaaps, Dennis Ritchie,
  147.     Matthias Fleischer, Gunther Nikl, Mike Schwartz, Kasper Graversen,
  148.     Johnny Tevessen
  149.  
  150.     However, if you have any comments/problems etc. with anything, please
  151.     do not bother them, but write to me (volker@vb.franken.de) first.
  152.     Exceptions are the parts by Kasper Graversen.
  153.  
  154.  
  155. INSTALLATION/TUTORIAL
  156.  
  157.     [Names of directories, binaries or assigns have changed since earlier
  158.      versions as have config-files. So users of earlier versions should
  159.      read this again and do a complete re-install to avoid problems.]
  160.  
  161.     The first step (which you probably already did) is to extract the
  162.     entire archive (take care to preserve the file attributes). If you
  163.     have several archives of the vbcc distribution you can just extract
  164.     them all to the same place.
  165.  
  166.     The distributed programs are for the most part only usable from a shell.
  167.  
  168.     To use vbcc the following steps are necessary:
  169.  
  170.     1. Go to the subdirectory vbcc/machines/amiga.
  171.  
  172.     2. If you have the Amiga OS-includes copy them into the include
  173.        directory.
  174.  
  175.     3. Execute the script init_vbcc.
  176.  
  177.     4. If you compile larger projects it may be necessary to increase
  178.        the stack further.
  179.  
  180.     If you use vbcc frequently it is probably a good idea to add those
  181.     commands to your user-startup, shell-startup or similar.
  182.  
  183.     Now you should be able to use vbcc. E.g. if you want to compile and
  184.     link the program hello.c you can type
  185.  
  186.         vc +ppc hello.c
  187.  
  188.     This will compile and link the file hello.c and create the executable
  189.     a.out in the current directory. (If you executed PPCInstall or the
  190.     ELFLoadSegPatch you can run the executable just like an 68k binary.
  191.     Otherwise you can run the executable using ppcrun with the syntax
  192.     ppcrun <program> <arguments>.)
  193.  
  194.         vc +ppc hello.c -o hello
  195.  
  196.     will do the same, but the created executable will be called hello.
  197.  
  198.         vc +ppc -c t1.c t2.c
  199.  
  200.     will compile t1.c and t2.c without linking, creating the object files
  201.     t1.o and t2.o.
  202.  
  203.         vc +ppc t1.o t2.o -o tt
  204.  
  205.     will link them together and create the executable tt.
  206.  
  207.     If your program uses floating point add -lm to the commandline
  208.     to link with the math-library, e.g.:
  209.  
  210.         vc +ppc calc.c -o calc -lm
  211.  
  212.     IMPORTANT: If your program uses AmigaOS-functions you have to specify
  213.     the option -amiga-align, e.g.
  214.  
  215.         vc +ppc -amiga-align myOsPrg.c
  216.  
  217.     There is also an extra.lib which includes a few functions that are
  218.     no standard ANSI functions but some people seem to regard them as
  219.     standard functions. If you use one of these add -lextra to the
  220.     commandline and read:
  221.  
  222.         vbcc/machines/amiga/doc/extralibppc.doc
  223.  
  224.     For further information read the files:
  225.  
  226.         vbcc/doc/vbcc.doc
  227.         vbcc/doc/vc.doc
  228.         vbcc/doc/vbccppc.doc
  229.         vbcc/machines/amiga/doc/vclibppc.doc
  230.  
  231.  
  232. SUPPORT FOR OTHER TARGETS
  233.  
  234.     This release of vbcc is able to generate code for 68k, PPC/ELF
  235.     and PPC/WarpOS. If you have installed other backends you can
  236.     choose the target by specifying another config file with the
  237.     '+'-option (e.g. +ppc).
  238.  
  239.     For further details see the corresponding docs for this target.
  240.  
  241.  
  242. CONFIGURATION
  243.  
  244.     The frontend searches for a file vc.config in ENV: and vbcc: to read
  245.     preferences. The provided sample vc.config should be usable and does
  246.     not have to be changed but you can add something to suit your personal
  247.     preferences - read
  248.  
  249.         vbcc/doc/vc.doc
  250.  
  251.     to find out more.
  252.  
  253.  
  254. MESSAGE BROWSER
  255.  
  256.     If you start the message browser with
  257.  
  258.         run vbrowse
  259.  
  260.     it will open a window with a listview gadget. If you have a pipe
  261.     command installed you can now invoke vc via tovbr, e.g.
  262.  
  263.         tovbr vc hello.c
  264.  
  265.     and any output from vc will be displayed in the window of vbrowse
  266.     rather than in the shell. It might be convenient to make an alias like
  267.  
  268.         alias vb tovbr vc
  269.  
  270.     so that invoking vb will automatically display the outp